/*
============================================================================
 Name        : C$(Basename)AppUi from $(Basename)Appui.h
 Author      : $(Author)
 Version     :
 Copyright   : $(Copyright)
 Description : Declares UI class for application.
============================================================================
*/

#ifndef $(BASENAME)APPUI_H
#define $(BASENAME)APPUI_H

// INCLUDES
#include <aknappui.h>

// FORWARD DECLARATIONS
class C$(Basename)Container;


// CLASS DECLARATION

/**
* Application UI class.
* Provides support for the following features:
* - EIKON control architecture
* 
*/
class C$(Basename)AppUi : public CAknAppUi
	{
	public: // // Constructors and destructor

		/**
		* EPOC default constructor.
		*/
		void ConstructL();

		/**
		* Destructor.
		*/	  
		~C$(Basename)AppUi();
		
	public: // New functions

	public: // Functions from base classes

	private:
		// From MEikMenuObserver
		void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);

	private:
		/**
		* From CEikAppUi, takes care of command handling.
		* @param aCommand command to be handled
		*/
		void HandleCommandL(TInt aCommand);

		/**
		* From CEikAppUi, handles key events.
		* @param aKeyEvent Event to handled.
		* @param aType Type of the key event. 
		* @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
		*/
		virtual TKeyResponse HandleKeyEventL(
			const TKeyEvent& aKeyEvent,TEventCode aType);

	private: //Data
		C$(Basename)Container* iAppContainer; 
	};

#endif


